package com.ltedu.course.service;

import com.ltedu.course.domain.Category;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ltedu.course.domain.dto.CategoryNode;

import java.util.List;

/**
 * <p>
 * 类别表 服务类
 * </p>
 *
 * @author Jerry
 * @since 2020-11-26
 */
public interface CategoryService extends IService<Category> {

    /**
     * 获取一级分类列表
     *
     * @return {@link List<Category>}
     */
    List<Category> getOneLevelCategory();

    /**
     * 分类树列表
     *
     * @return {@link List<CategoryNode>}
     */
    List<CategoryNode> treeList();

    /**
     * 是否包含子分类
     *
     * @param id id
     * @return {@link Boolean}
     */
    Boolean hasChildById(Long id);

    /**
     * 检查类别是否存在课程中
     *
     * @param id id
     * @return {@link Boolean}
     */
    Boolean checkCategoryExistCourse(Long id);

    /**
     * 根据上级分类id查询下级分类列表
     *
     * @param parentId 父id
     * @return {@link List<Category>}
     */
    List<Category> getTwoLevelCategory(Long parentId);
}
